/********************************************************************************
  * @file    SD93F115B_buz.c
  * @author   TEST TEAM 												    	
  * @version  v0															    	
  * @date     Septemper 2022												    	
  * @brief
  *
  * Copyright (C) 2022  Hangzhou SDIC Microelectronics Co., Ltd
**********************************************************************************/
    
#include "SD93F115B_buz.h"
#include "SD93F115B_rcc.h"

/*---------------------------------------
 * 函数功能：将BUZZER重设为上电默认值
 * 入口参数：
 * 出口参数：
 * 返回值  ：
 * 编写日期：
 * 作者    ：
 *---------------------------------------*/
void BUZ_DeInit(BUZ_TypeDef * BUZx)
{
	/* Check the parameters */
	assert_param(IS_BUZ_ALL_PERIPH(BUZx)); 
	
    if(BUZx==BUZ0)
	{
		RCC_APBPeriphResetCmd(RCC_APBPeriph_BUZ0, ENABLE);
		RCC_APBPeriphResetCmd(RCC_APBPeriph_BUZ0, DISABLE); 
	}
	else 
	  if(BUZx==BUZ1)
	 {
		RCC_APBPeriphResetCmd(RCC_APBPeriph_BUZ1, ENABLE);
        RCC_APBPeriphResetCmd(RCC_APBPeriph_BUZ1, DISABLE); 
	 }

}
/*----------------------------------------------------------------
 * 函数功能：BUZ输出频率
 * 入口参数：
 * 出口参数：
 * 返回值  ：
 * 编写日期：
 * 作者    ：
 *---------------------------------------------------------------*/	
void BUZ_SetOutFrequency(BUZ_TypeDef * BUZx,uint8_t BUZCLKSDIV)
{
    /* Check the parameters */
    assert_param(IS_BUZ_ALL_PERIPH(BUZx));
    assert_param(IS_BUZ_BUZCLKS_DIV(BUZCLKSDIV));
	
	uint16_t tmpreg=0;
	tmpreg = BUZx->CR & 0x00FF;
    tmpreg |= ((uint16_t)BUZCLKSDIV)<< 8;
    BUZx->CR=tmpreg;	
}	 

/*-----------------------------------------------------------
 * 函数功能：BUZ使能
 * 入口参数：
 * 出口参数：
 * 返回值  ：
 * 编写日期：
 * 作者    ：
 *-----------------------------------------------------------*/
void BUZ_Cmd(BUZ_TypeDef * BUZx,FunctionalState NewState)
{
	/* Check the parameters */
	assert_param(IS_BUZ_ALL_PERIPH(BUZx));
	assert_param(IS_FUNCTIONAL_STATE(NewState)); 
 
	if (NewState != DISABLE)
	{
		BUZx->CR |= BUZ_CR_BUZEN;
	}
	else
	{
		BUZx->CR &= ~BUZ_CR_BUZEN;
	}	
}

/*--------------------------------------------------------------
 * 函数功能：BUZB使能
 * 入口参数：
 * 出口参数：
 * 返回值  ：
 * 编写日期：
 * 作者    ：
 *-------------------------------------------------------------*/
void BUZB_Cmd(BUZ_TypeDef * BUZx ,FunctionalState NewState)
{
	/* Check the parameters */
	assert_param(IS_BUZ_ALL_PERIPH(BUZx));
	assert_param(IS_FUNCTIONAL_STATE(NewState));
	
	if (NewState != DISABLE)
	{
		BUZx->CR |= BUZ_CR_BUZBEN;
	}
	else
	{
		BUZx->CR &= ~BUZ_CR_BUZBEN;
	}		
}	
	

/****************************END OF FILE****************************/